//package com.gydz.gydzbaseframeworkboot.wsCenter.service.impl;
//
//import com.gydz.gydzbaseframeworkboot.wsCenter.dao.FscanMapper;
//import com.gydz.gydzbaseframeworkboot.wsCenter.domin.Fscan;
//import com.gydz.gydzbaseframeworkboot.wsCenter.service.FscanService;
//import com.gydz.gydzbaseframeworkboot.SpectrumMonitoring.domain.SpectrumResult;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.stream.Collectors;
//
//@Service("FscanService")
//public class FscanServiceImpl implements FscanService {
//
//    @Autowired
//    FscanMapper fscanMapper;
//
//    private List<Integer> maxData;
//    private List<Integer> minData;
//
//
//    @Override
//    public List<Fscan> selectFscanList(Fscan fscan) {
////        Long[] t = {1681228819169l,1681228819209l,1681228819259l,1681228819329l,1681228819419l,1681228819509l,1681228819549l};
////        Random random = new Random();
////        fscan.setTimeStamp(t[random.nextInt(t.length)]);
//
//        fscan.setTimeStamp(fscan.getTimeStamp() != null ? fscan.getTimeStamp() / 1000 : null);
//        List<Fscan> fscanList = fscanMapper.selectFscanList(fscan);
//        if(!fscanList.isEmpty()){
//            //去除data的 "[]"符号和空格
//            fscanList = fscanList.stream()
//                .peek(fs -> {
//                    String data = fs.getData().replaceAll("\\s", "");
//                    fs.setData(data);
//                })
//                .collect(Collectors.toList());
//        }
//        return fscanList;
//    }
//
//    @Override
//    public SpectrumResult selectFscanList2(Fscan fscan) {
//
//        return getSpectrumResult(fscan);
//    }
//
//    private SpectrumResult getSpectrumResult(Fscan fscan){
//        SpectrumResult spectrumResult = new SpectrumResult();
//
////        Long[] t = {1696918843583l,1696918848095l,1696918854011l,1696918856318l,1696918859527l,1696918857321l,1696918861935l};
////        Random random = new Random();
////        fscan.setTimeStamp(t[random.nextInt(t.length)]);
//        fscan.setTimeStamp(fscan.getTimeStamp() != null ? fscan.getTimeStamp() / 1000 : null);
//        List<Fscan> selectFscanList = fscanMapper.selectFscanList(fscan);
//        if (!selectFscanList.isEmpty() && StringUtils.isNotBlank(selectFscanList.get(0).getData()) && selectFscanList.get(0).getData().length() > 1) {
//            String data = null;
//            data = selectFscanList.get(0).getData().substring(1, selectFscanList.get(0).getData().length() - 1);
//            List<Integer> dataList = Arrays.stream(StringUtils.split(data, ",")).map(String::trim).map(Integer::parseInt).collect(Collectors.toList());;
////            List<Integer> upLine = dataList.subList(0,6000);
////            List<Integer> downLine = dataList.subList(6000,12000);
//            List<Integer> upLine = dataList.subList(0,1000);
//            List<Integer> downLine = dataList.subList(11000,12000);
//            if(maxData == null){
//                maxData = dataList;
//                minData = dataList;
//                spectrumResult.setUpMinHold(upLine.toArray(new Integer[1000]));
//                spectrumResult.setUpMaxHold(upLine.toArray(new Integer[1000]));
//                spectrumResult.setDownMinHold(downLine.toArray(new Integer[1000]));
//                spectrumResult.setDownMaxHold(downLine.toArray(new Integer[1000]));
//            }else{
//                List<Integer> maxLineList = new ArrayList<>();
//                List<Integer> minLineList = new ArrayList<>();
//
//                for(int i = 0; i < dataList.size(); i++){
//                    maxLineList.add(maxData.get(i) >= dataList.get(i) ? maxData.get(i) : dataList.get(i));
//                    minLineList.add(minData.get(i) <= dataList.get(i) ? minData.get(i) : dataList.get(i));
//                }
//                maxData = maxLineList;
//                minData = minLineList;
//                spectrumResult.setUpMinHold(minLineList.subList(0, Math.min(minLineList.size(), 1000)).toArray(new Integer[1000]));
//                spectrumResult.setUpMaxHold(maxLineList.subList(0, Math.min(maxLineList.size(), 1000)).toArray(new Integer[1000]));
//                spectrumResult.setDownMinHold(minLineList.subList(Math.max(0, minLineList.size() - 1000), minLineList.size()).toArray(new Integer[1000]));
//                spectrumResult.setDownMaxHold(maxLineList.subList(Math.max(0, maxLineList.size() - 1000), maxLineList.size()).toArray(new Integer[1000]));
//            }
//
//            spectrumResult.setUpInstaValue(upLine.toArray(new Integer[1000]));
//            spectrumResult.setDownInstaValue(downLine.toArray(new Integer[1000]));
//
////            System.out.println(spectrumResult.getUpInstaValue().length + "--" + spectrumResult.getUpMinHold().length + "--" + spectrumResult.getUpMaxHold().length);
////            System.out.println(spectrumResult.getDownInstaValue().length + "--" + spectrumResult.getDownMinHold().length + "--" + spectrumResult.getDownMaxHold().length);
//
//        }
//
//        return spectrumResult;
//    }
//
//}
